Podsumowanie przeprowadzonej analizy

Raport zawiera analizę danych krystalograficznych wraz z oceną możliwości wykorzystania uczenia maszynowego do predykcji jakie cząsteczki mogą się kryć w niewymodelowanych fragmentach map intensywności. Dane wykorzystane do przeprowadzenia analizy pochodzą z Protein Data Bank. W zbiorze danych zawarte zostały szczegółowe informacje dotyczące ligandów.

Ze względu na duży rozmiar zbioru danych analiza korelacji pomiędzy zmiennymi była utrudniona i wymagała podziału kolumn na podzbiory. Również tworzenie regresora i klasyfikatora wiązało się z pewnymi trudnościami. Ze względu na ograniczenia sprzętowe i czasowe możliwe było korzystanie jedynie z niskich parametrów wejściowych mających istotny wpływ na jakoś predykcji.

W związku z tym przy próbie predykcji liczby atomów i elektronów lub wartości res_name, wykorzystującej kolumny silnie skorelowane (oparte o dane słownikowe oraz dane zamodelowane w pliku PDB) otrzymane rezultaty były bardzo dobre. Jednak przy próbie opartej o kolumny, których wartości obliczone zostały tylko na podstawie ligandu oraz te, których wartości są obliczone zostały na podstawie całego pliku PDB, uzyskana trafność regresji i klasyfikacji była niezadowalająca.

Niewątpliwie brak wiedziy z zakresu krystalografii znacznie utrudnił analizę danych. Z pewnością posiadając szerszą wiedzię dziedzinową możliwe byłoby wyciągnięcie większej ilości wniosków.

Przygotowanie danych

Wykorzystane biblioteki.

W procesie analizy wykorzystane zostały następujące biblioteki:

library(knitr)
library(dplyr)
library(data.table)
library(DT)
library(ggplot2)
library(plotly)
library(tidyr)
library(reshape2)
library(corrplot)
library(caret)
library(utils)
library(randomForest)
library(e1071)
library(infotheo)

Zapewnienie powtarzalności wyników

Aby zapewnić powtarzalność wyników przy każdym uruchomieniu raportu na tych samych danych ustawiona została wartość seed.

set.seed(23)

Wczytanie danych z pliku

Dane o ligandach zostały unieszczone w pliku “all_summary.csv”. Do ich wczytania wykorzystana została funkcja read.table. Ze względu na duży rozmiar pliku wejściowego konieczne było ustawienie parametru colClasses, aby przyspieszyć etap wczytywania danych. W tym celu najpierw została wczytana niewielka próbka danych z pliku (50000 wierszy). Na ich podstaie zostały określone typy poszczególnych kolumn. Dodatkowo utawiony został parametr nrows aby poprawić zarządzanie pamięcią.

Filtracja danych na podstawie wartości zmiennej res_name

Ze zbioru zostają usunięte wiersze posiadające w kolumnie res_name wartość równą: “UNK”, “UNX”, “UNL”, “DUM”, “N”, “BLOB”, “ALA”, “ARG”, “ASN”, “ASP”, “CYS”, “GLN”, “GLU”, “GLY”, “HIS”, “ILE”, “LEU”, “LYS”, “MET”, “MSE”, “PHE”, “PRO”, “SEC”, “SER”, “THR”, “TRP”, “TYR”, “VAL”, “DA”, “DG”, “DT”, “DC”, “DU”, “A”, “G”, “T”, “C”, “U”, “HOH”, “H20”, “WAT”. Ponadto zostają jednocześnie usunięte wiersze posiadające wartość pustą w zmiennej res_name.

Przetwarzanie brakujących danych

Ze zbioru danych zostaje wyrzuconych 11 kolumn zawierających same wartości puste bądź identyczne wartości w całej kolumnie nie wnosząc tym samym żadnej istotnej informacji do dalszej analizy. Usunięte w ten sposób kolumny to: local_min fo_col, fc_col weight_col, grid_space, solvent_radius, solvent_opening_radius, resolution_max_limit, part_step_FoFc_std_min, part_step_FoFc_std_max, part_step_FoFc_std_step.

Ograniczenie liczby klas (res_name)

Do dalszej analizy wykorzystane zostanie jedynie 50 najpopularniejszych wartości res_name. Reszta zostaje usunięta ze zbioru.

Sekcję podsumowującą rozmiar zbioru i podstawowe statystyki.

Zbiór składa się z 381046 obserwacji oraz 401 atrybutów. Poniżej przedstawione zostały podstawowe statystyki.

Korelacje między zmiennymi

Korelacje liczb atomów i elektronów ligandu zamodelowanych w pliku PDB oraz wyliczonych na podstawie danych słownikowych

Wyraźnie widoczna jest silna korelacja pomiędzy liczbą atomów i elektronów ligandu zamodelowaną w pliku PDB oraz wyliczonych na podstawie danych słownikowych. Zbliżona wartość danych zamodelowanych do słownikowych potwierdza ich wiarygodność. Użycie tych atybutów do budowy regresora przewidującego liczbę atomów i elektronów powinno dać w rezultacie bardzo dobrą trafność regresji.

Korelacje wartości obliczonych tylko na podstawie ligandu z odcięciem intensywności równym 1

Z powyższych wykresów wynika, że kolumny dotyczące niezmienników kształtu I2, I3, I4, I5 prawdopodobnie nie będą miały dużego wpływu na predykcję liczby atomów i elektronów. Natomiast kolumny part_01_* Z* oraz part_01_* E* mogą mież duży wpływ na trafność regresji analizowanej w dalszej sekcji.

Korelacje pomiędzy pozostałymi zmiennymi obliczanymi tylko na podstawie ligandu bez określenia progu intensywności

Z wykresu wynika, że szczególnie przydatne do predykcji liczby atomów i elektronów mogą być atrybuty local_volume oraz local_electrons.

Korelacje między wartościami obliczonymi na podstawie całego pliku PDB

Dane dotyczące wartościami obliczonymi na podstawie całego pliku PDB zupełnie nie są skorelowane z wartościami liczby elektronów, a zatem będzie je można pominąć przy budowie regresora.

Określenie ile przykładów ma każda z klas (res_name).

Wykres przedstawia zestawienie liczności 50 najpopularniejszych klas.

Widoczny na wykresie znaczny rozrzut liczebności klas co może utrudnić budowę klasyfikatora. Konieczne będzie zasotowanie mechanizmu stratyfikacji.

Wykresy rozkładów liczby atomów i elektronów

Rozkład liczby atomów

Na wykresie rozkładu liczby atomów można zauważyć duże niezrównoważenie liczby atomów. Zdecydowana większość ligandów zawiera niewielką liczbę atomów. Powyżej 20 atomów w cząsteczce posiadają jedynie nieliczne bardziej złożone ligandy.

Rozkład liczby elektronów

Wysoki stopień korelacji przedstawiony we wcześniejszej sekcji znajduje swoje odzwierciedlenie również tutaj. Biorąc pod uwagę fakt, że w skład atomu wchodzą elektrony to wraz ze zmianą liczności atomów w ligandzie zmienia się również proporcjonalnie liczba elektronów. Co tłumaczy podobny kształt wykresu rozkładu elektronów do rozkładu atomów.

Porównanie średniej liczby atomów i elektronów w poszczególnych klasach

Poniższy wykres potwierdza, iż zdecydowanie radziej zdarzają się ligandy złożone z wielu atomów i elektronów. Najliczniejsze klasy posiadają niską średnią wartość liczby elektronów i atomów, natomiast mniejliczne klasy cechują się wyższą średnią liczbą atomów i elektronów.

Niezgodność liczby atomów i elektronów

Niezgodność dla każdej klasy została wyliczona jako wartość średnia z różnicy liczby atomów bądź elektronów ligandu zamodelowanej w pliku PDB a liczby atomów bądź elektronów wyliczonej na podstawie danych słownikowych.

Tabela pokazująca 10 klas z największą niezgodnością liczby atomów (local_res_atom_non_h_count vs dict_atom_non_h_count)

Tabela pokazująca 10 klas z największą niezgodnością liczby elektronów (local_res_atom_non_h_electron_sum vs dict_atom_non_h_electron_sum)

Rozkład wartości wszystkich kolumn zaczynających się od part_01

Na wykresach kolorem czerwonym została zaznaczona wrtość średnia.

Przewidywanie liczby elektronów i atomów na podstawie wartości innych kolumn wraz z oszacowaniem trafności regresji na podstawie miar R^2 i RMSE

Przed przystąpieniem do predykcji wartości liczby atomów i elektronów dokonana zostanie dodatkowa filtracja danych. Na podstawie infromacji uzyskanych w wyniku wcześniejszych punktów możliwe jest pominięcie w dalszych obliczeniach części kolumn słabo skorelowanych z poszukiwanymi atrybutami.

Do budowy regresora został użyty algorytm regresji liniowej. Zbiór danych został podzielony na dwa zbiory: uczący (75% próbek) oraz testowy (25% próbek). W schemacie uczenia zastosowany został algorytm powtórzonej walidacji krzyżowej.

Przewidywanie liczy atomów

Predykcja liczby atomów oparta o przefiltrowane wartości obliczane na podstawie całego pliku PDB oraz obliczane tylko na podstawie ligandu

## Linear Regression 
## 
## 283416 samples
##     62 predictor
## 
## No pre-processing
## Resampling: Cross-Validated (20 fold, repeated 1 times) 
## Summary of sample sizes: 269245, 269245, 269245, 269245, 269245, 269246, ... 
## Resampling results:
## 
##   RMSE      Rsquared   MAE    
##   9.810723  0.4571192  5.45837
## 
## Tuning parameter 'intercept' was held constant at a value of TRUE

Predykcja liczby atomów oparta o dodatkowo o kolumny zawierające wartości słownikowe oraz wartości zamodelowane w pliku PDB

## Linear Regression 
## 
## 283416 samples
##     76 predictor
## 
## No pre-processing
## Resampling: Cross-Validated (20 fold, repeated 1 times) 
## Summary of sample sizes: 269245, 269246, 269245, 269246, 269245, 269246, ... 
## Resampling results:
## 
##   RMSE         Rsquared   MAE         
##   0.002268117  0.9999999  0.0002978884
## 
## Tuning parameter 'intercept' was held constant at a value of TRUE

Przewidywanie liczy elektronów

Predykcja liczby elektronów oparta o przefiltrowane wartości obliczane na podstawie całego pliku PDB oraz obliczane tylko na podstawie ligandu

## Linear Regression 
## 
## 283417 samples
##     62 predictor
## 
## No pre-processing
## Resampling: Cross-Validated (20 fold, repeated 1 times) 
## Summary of sample sizes: 269245, 269247, 269247, 269247, 269247, 269246, ... 
## Resampling results:
## 
##   RMSE      Rsquared   MAE     
##   66.04292  0.4559301  36.66236
## 
## Tuning parameter 'intercept' was held constant at a value of TRUE

Predykcja liczby elektronów oparta o dodatkowo o kolumny zawierające wartości słownikowe oraz wartości zamodelowane w pliku PDB

## Linear Regression 
## 
## 283417 samples
##     76 predictor
## 
## No pre-processing
## Resampling: Cross-Validated (20 fold, repeated 1 times) 
## Summary of sample sizes: 269247, 269245, 269246, 269245, 269246, 269245, ... 
## Resampling results:
## 
##   RMSE        Rsquared   MAE        
##   0.03149025  0.9999996  0.003435103
## 
## Tuning parameter 'intercept' was held constant at a value of TRUE

Jak widać w oby przypadkach zdecydowanie lepszy wynik uzyskaliśmy w wyniku regresji korzystających z danych zamodelowanych w pliku PDB i słownikowych. Jest to związane z silną korelacją tych zmiennych z liczbą atomów i elektronów.

Budowa klasyfikatora przewidującego wartość atrybutu res_name

Do stworzenia klasyfikatora wykorzystywane były kolumny z pominięciem tych dotyczących watrości zamodelowanych, opartych na danych słownikowych oraz “skeleton”. Ze względu na długi czas obliczeń, konieczna była redukcja liczby zmiennych biorących udział w budowie klasyfikatora. Wybór atrybutów został oparty o miarę mutual information. Poniżej przedstawione zostały wyliczone miary.

blob_coverage 2.3691447
res_coverage 2.3691456
title 0.1053626
pdb_code 0.1053355
res_name 3.0382514
res_id 0.1322302
chain_id 0.0194567
blob_volume_coverage 0.2495969
blob_volume_coverage_second 0.0898787
res_volume_coverage 0.4440761
res_volume_coverage_second 0.0948410
local_volume 0.2713668
local_electrons 0.3213270
local_mean 0.2046620
local_std 0.1869364
local_max 0.1683923
local_max_over_std 0.2361217
local_skewness 0.1791040
local_cut_by_mainchain_volume 0.2371719
local_near_cut_count_C 0.1978132
local_near_cut_count_other 0.0140359
local_near_cut_count_S 0.1097525
local_near_cut_count_O 0.2234483
local_near_cut_count_N 0.1849215
resolution 0.0997946
FoFc_mean 0.0528482
FoFc_std 0.0878070
FoFc_square_std 0.0878070
FoFc_min 0.0822687
FoFc_max 0.1193085
part_01_shape_segments_count 0.2645303
part_01_density_segments_count 0.2645303
part_01_volume 0.2802927
part_01_electrons 0.3124934
part_01_mean 0.1333972
part_01_std 0.1987013
part_01_max 0.1683924
part_01_max_over_std 0.2361181
part_01_skewness 0.1905173
part_01_parts 0.0318876
part_01_shape_O3 0.2955618
part_01_shape_O4 0.2979039
part_01_shape_O5 0.2965167
part_01_shape_FL 0.2900151
part_01_shape_O3_norm 0.2300543
part_01_shape_O4_norm 0.2319273
part_01_shape_O5_norm 0.2169201
part_01_shape_FL_norm 0.1864856
part_01_shape_I1 0.3014721
part_01_shape_I2 0.3031235
part_01_shape_I3 0.3017501
part_01_shape_I4 0.2894523
part_01_shape_I5 0.2859914
part_01_shape_I6 0.2977169
part_01_shape_I1_norm 0.2250690
part_01_shape_I2_norm 0.2265937
part_01_shape_I3_norm 0.2196014
part_01_shape_I4_norm 0.1870135
part_01_shape_I5_norm 0.1756734
part_01_shape_I6_norm 0.2238600
part_01_shape_M000 0.2802927
part_01_shape_CI 0.1396236
part_01_shape_E3_E1 0.2247516
part_01_shape_E2_E1 0.1442625
part_01_shape_E3_E2 0.1721688
part_01_shape_sqrt_E1 0.3232966
part_01_shape_sqrt_E2 0.3233869
part_01_shape_sqrt_E3 0.2741935
part_01_density_O3 0.3142637
part_01_density_O4 0.3219817
part_01_density_O5 0.3233830
part_01_density_FL 0.2985308
part_01_density_O3_norm 0.2884064
part_01_density_O4_norm 0.2812386
part_01_density_O5_norm 0.2533358
part_01_density_FL_norm 0.2399764
part_01_density_I1 0.3121641
part_01_density_I2 0.3159896
part_01_density_I3 0.3124345
part_01_density_I4 0.2989005
part_01_density_I5 0.2934945
part_01_density_I6 0.3102946
part_01_density_I1_norm 0.2786944
part_01_density_I2_norm 0.2761159
part_01_density_I3_norm 0.2763006
part_01_density_I4_norm 0.2374666
part_01_density_I5_norm 0.2079595
part_01_density_I6_norm 0.2820457
part_01_density_M000 0.3124934
part_01_density_CI 0.1408813
part_01_density_E3_E1 0.2286831
part_01_density_E2_E1 0.1496383
part_01_density_E3_E2 0.1761350
part_01_density_sqrt_E1 0.3287550
part_01_density_sqrt_E2 0.3197275
part_01_density_sqrt_E3 0.2734698
part_01_shape_Z_7_3 0.2757044
part_01_shape_Z_0_0 0.2802927
part_01_shape_Z_7_0 0.2028321
part_01_shape_Z_7_1 0.2458391
part_01_shape_Z_3_0 0.2201788
part_01_shape_Z_5_2 0.2548240
part_01_shape_Z_6_1 0.2545717
part_01_shape_Z_3_1 0.2356855
part_01_shape_Z_6_0 0.1798538
part_01_shape_Z_2_1 0.2552874
part_01_shape_Z_6_3 0.2906819
part_01_shape_Z_2_0 0.2535216
part_01_shape_Z_6_2 0.2856040
part_01_shape_Z_5_0 0.2090246
part_01_shape_Z_5_1 0.2443667
part_01_shape_Z_4_2 0.2801108
part_01_shape_Z_1_0 0.2052268
part_01_shape_Z_4_1 0.2748938
part_01_shape_Z_7_2 0.2663011
part_01_shape_Z_4_0 0.2027238
part_01_density_Z_7_3 0.2544970
part_01_density_Z_0_0 0.3124934
part_01_density_Z_7_0 0.2164337
part_01_density_Z_7_1 0.2265320
part_01_density_Z_3_0 0.1966747
part_01_density_Z_5_2 0.2459735
part_01_density_Z_6_1 0.2881872
part_01_density_Z_3_1 0.2304989
part_01_density_Z_6_0 0.2110675
part_01_density_Z_2_1 0.2845677
part_01_density_Z_6_3 0.2953989
part_01_density_Z_2_0 0.2973497
part_01_density_Z_6_2 0.2959463
part_01_density_Z_5_0 0.2083863
part_01_density_Z_5_1 0.2341277
part_01_density_Z_4_2 0.2648359
part_01_density_Z_1_0 0.2002108
part_01_density_Z_4_1 0.2586611
part_01_density_Z_7_2 0.2458349
part_01_density_Z_4_0 0.2328241

Na tej podstawie do wyselekcjonowanych zostało 10 kolumn biorących udział w dalszych obliczeniach: part_01_shape_sqrt_E2, part_01_density_sqrt_E2, part_01_density_O5, part_01_density_O4, local_electrons, part_01_density_sqrt_E1, part_01_density_I2, part_01_shape_sqrt_E1, part_01_density_O3, part_01_density_I3.

Ze względu na duży rozrzut wartości res_name przy podziale zbioru wykorzystany został mechanizm stratyfikacji. W schemacie uczenia zastosowany został algorytm powtórzonej oceny krzyżowej (podział na 10 zbiorów). Model klasyfikacyjny został stworzony zgodnie z algorytmem Random Forest z doborem parametrów optymalizujących mtry na przedziale od 5 do 15. Z powodów wydajnościowych predykcję ograniczono tylko do 10 drzew decyzyjnych.

## Random Forest 
## 
## 283429 samples
##     10 predictor
##     50 classes: '1PE', 'ACT', 'ACY', 'ADP', 'ATP', 'BR', 'CA', 'CD', 'CL', 'CLA', 'COA', 'CU', 'DMS', 'EDO', 'EPE', 'FAD', 'FE', 'FE2', 'FMN', 'FMT', 'GDP', 'GOL', 'HEC', 'HEM', 'IOD', 'K', 'MAN', 'MES', 'MG', 'MLY', 'MN', 'MPD', 'NA', 'NAD', 'NAG', 'NAP', 'NDP', 'NI', 'NO3', 'PEG', 'PG4', 'PGE', 'PLP', 'PO4', 'SAH', 'SEP', 'SF4', 'SO4', 'TRS', 'ZN' 
## 
## No pre-processing
## Resampling: Cross-Validated (10 fold, repeated 1 times) 
## Summary of sample sizes: 255083, 255091, 255081, 255090, 255083, 255081, ... 
## Resampling results across tuning parameters:
## 
##   mtry  Accuracy   Kappa    
##    5    0.3419762  0.2867716
##    6    0.3430559  0.2880429
##    7    0.3443895  0.2894775
##    8    0.3437402  0.2888151
##    9    0.3434757  0.2885757
##   10    0.3437720  0.2889537
##   11    0.3429534  0.2880752
##   12    0.3426748  0.2876614
##   13    0.3434933  0.2886331
##   14    0.3435109  0.2886468
##   15    0.3427418  0.2878310
## 
## Accuracy was used to select the optimal model using the largest value.
## The final value used for the model was mtry = 7.

Jak widać trafność klasyfikacji nie jest wysoka. Z pewnością wykorzystanie większej ilości drzew decyzyjnych polepszyłoby rezultat. Poniżej przedstawiona została macierz predykcji.

## Confusion Matrix and Statistics
## 
##           Reference
## Prediction  1PE  ACT  ACY  ADP  ATP   BR   CA   CD   CL  CLA  COA   CU
##        1PE   22    8    1    2    2    0    5    0    4    3    5    0
##        ACT    5  131   25    4    4    8   40    4   63    7    3    1
##        ACY    1   17    5    0    0    0    0    3    8    1    2    1
##        ADP    3    4    0  346  113    0    6    1    3    3    9    1
##        ATP    1    2    0   59  135    1    6    0    2    5    3    0
##        BR     0    0    0    0    0   12   31    4   43    0    1    1
##        CA    10   47   14   12    3   73 1922   80  301   11    6   64
##        CD     1   16    5    0    1    1   17  195    6    1    0    5
##        CL     8   94   14    7    7  116  432   36 2503   14   10   20
##        CLA    9   11    1    8    7    1   11    1   13  138   12    1
##        COA    3    5    0    5    2    0    3    0    2    5   36    1
##        CU     0    2    1    0    0    2   15    7    0    1    1   51
##        DMS    4   45   10    0    2   10   58    6   71    4    5    7
##        EDO   92  372   68   27   15   35  161   13  434   79   71    9
##        EPE    1    3    0    2    0    1    9    0    7    1    6    0
##        FAD    0    0    0   13    8    1    6    1    2    6    6    0
##        FE     0    2    0    1    2    0    9    8    7    1    1    3
##        FE2    0    3    0    0    0    1   16    4    2    0    0    3
##        FMN    4    0    0    5    5    0    4    0    1    4    2    0
##        FMT    3   20    5    0    1    0    8    1   15    2    1    1
##        GDP    0    0    0   69   39    0    0    0    1    2    3    0
##        GOL  131  425   78   68   38   40  287   24  509  127   69   12
##        HEC    0    2    0    0    1    0    0    1    0    0    5    0
##        HEM    5   28    2   15   22    3   20    3   24   24   26    5
##        IOD    1   10    0    0    0   26   68   37   81    2    1    6
##        K      1    3    1    0    0    9   80    4  120    1    2    2
##        MAN    0    7    2   11    1    0    7    2    4   12    4    2
##        MES    3    3    2    5    3    0   18    1   15    1    4    1
##        MG    10   54   11    9    7    8  198   13  158   18    7    7
##        MLY    6   10    1    3    3    2    9    4    4    8   10    0
##        MN     0    4    3    5    2    3   49   21   10    0    0   21
##        MPD    1    9    2    0    1    0    5    0    7    4    2    1
##        NA     2   37    4    1    0   15   78    4  253    5    4    4
##        NAD    2    4    1   27    8    2    8    0    4   16   21    0
##        NAG  114   76   15  126   69    4  117    9   66  396   94    6
##        NAP    0    1    1   12   11    0    5    0    6    6   12    0
##        NDP    1    2    1    6    1    0    5    0    2    4    2    0
##        NI     0    2    0    1    0    1   10   10    2    0    0    1
##        NO3    0   13    0    0    0    0    4    0    3    0    1    0
##        PEG   13   14    2    2    0    3   10    0   14   10    4    0
##        PG4   21    7    0    1    3    0    4    0    7    7    8    0
##        PGE    8    5    0    1    1    1    2    1    3    1    0    1
##        PLP    0    2    0   12    2    0    6    0    2    0    3    0
##        PO4    3   27    2    7    7    7   79   16   48    3    6    2
##        SAH    1    1    2   30   13    0    1    1    0    3    8    0
##        SEP    2    1    0    3    2    0   13    1    2    1    1    1
##        SF4    0    1    0    0    4    0    4    8    2    0    0    0
##        SO4   36  439  107   31   19  111 1105  144  891   68   51   59
##        TRS    0    3    1    0    0    1    5    0    1    0    0    1
##        ZN     1   43   14   12    6   33  286  141   68   19   13  286
##           Reference
## Prediction  DMS  EDO  EPE  FAD   FE  FE2  FMN  FMT  GDP  GOL  HEC  HEM
##        1PE    1   24    6    3    0    1    1    2    0   35    0    4
##        ACT   47  167    9    6    3    4    3   25    1  173   10   31
##        ACY    3   21    2    3    1    1    0    4    0   14    0    1
##        ADP    0    9    4   22    2    1   14    1  107   16    1    7
##        ATP    0    2    0   11    1    0    6    2   38    7    1   13
##        BR     3    7    1    1    0    1    0    1    0   12    0    1
##        CA    58   73   14   10   43   48    5   16    2  131    2   42
##        CD     3    9    0    0   10   10    0    0    0    8    0    4
##        CL   107  354   14    5   23   15    2   43    0  386    2   39
##        CLA    5   37    2    6    1    1    7    1    6   79    2   23
##        COA    3   16   10    3    0    0    6    1    4   14    0   10
##        CU     0    2    0    0    6    2    1    0    1    0    0    0
##        DMS  113   89   10    0    4    4    2   16    0   62    4   12
##        EDO  148 2925   56   33   11   12   23  223   12 2276   32  190
##        EPE    0   10   64    2    1    0    0    2    3   19    0    2
##        FAD    3    8    0  631    1    3    9    1    8    8    1   19
##        FE     1    4    0    1   18    4    0    0    1    5    0    2
##        FE2    3    2    0    1    2   10    1    0    0    2    0    1
##        FMN    1    3    0   11    1    1  240    1    9    6    0    4
##        FMT   11   60    0    1    0    1    0   37    0   47    4    8
##        GDP    0    0    1    6    0    0    5    0   81    0    0    1
##        GOL  145 2166   52   67   16   28   28  151    9 4024   41  208
##        HEC    0    8    0    1    0    0    1    0    1    5   79   77
##        HEM   17   55    3   14    3    1    6    8    5   65  213 1574
##        IOD   24   20    4    0    6    9    0    1    0   23    2    4
##        K      6   19    0    0    3    2    0    2    0   22    0    1
##        MAN    2   15    1    5    0    0    0    1    0   23    0    4
##        MES    7   11   27   11    2    1    1    0    0   21    0    3
##        MG    18  124    5    4    7    6    2   23    2  227    4   26
##        MLY    5   25    7    8    1    3    5    3    1   39    2   12
##        MN     0    8    4    0   12   21    1    1    0   13    0    5
##        MPD    4   22    0    0    0    0    0    0    0   60    1    7
##        NA    19  163    3    2    4    2    2    8    1  174    1   19
##        NAD    4   13    2   38    1    1   12    1    7   18    1   12
##        NAG   26  295   32  130   19   12   67   26   49  621   18  104
##        NAP    3   10    1   18    0    1    4    0    3   14    2   11
##        NDP    0    7    0   20    1    0    3    0    0    4    1    6
##        NI     0    1    0    0    0    2    0    1    1    2    0    1
##        NO3    3   10    1    0    1    0    0    4    0    9    1    1
##        PEG    6   86    7    6    5    1    2   10    1  125    1   16
##        PG4    2   29    7    5    3    1    2    2    1   46    1    5
##        PGE    1   20    1    0    1    0    0    0    0   34    0    3
##        PLP    0    2    3    3    3    0    1    2    1    4    1    1
##        PO4   36   39    9    3   12   10    9    5    6   71    3   29
##        SAH    0    2    3    8    0    0    6    0   12    8    1    0
##        SEP    0    4    3    1    2    1    1    0    2    7    0    6
##        SF4    0    0    0    0    0    0    0    1    2    0    0    2
##        SO4  798  652   97   25   60   77   37   88   14 1052   40  183
##        TRS    1    4    2    1    2    1    0    1    0   20    0    1
##        ZN    19   31   13    9  108   90    3   11    5   55    5   47
##           Reference
## Prediction  IOD    K  MAN  MES   MG  MLY   MN  MPD   NA  NAD  NAG  NAP
##        1PE    0    2    6    1   12    4    1    3    4    4   39    1
##        ACT   11   11   11   17   46   12    7   13   41    7   50    7
##        ACY    3    2    0    2    7    1    6    2    8    1    4    1
##        ADP    1    4   12    1   12    3    4    1    1   50   60   13
##        ATP    1    1    1    1    7    1    2    0    1   12   34    8
##        BR    15    8    0    1    6    2    1    0   14    0    2    0
##        CA   175  189    8   19  229   14  134   11  101    7   72    7
##        CD    42    4    0    2    6    0   15    0    1    0    3    0
##        CL   212  292   10   31  339   16   40   20  532   13   73    9
##        CLA    0    6   23    4   20    5    2    5    7   13  167    8
##        COA    3    5    4    1    4    4    1    1    4   17   31    8
##        CU    18    2    0    0    3    0   10    0    0    0    3    1
##        DMS   41   13    1    8   20    6    4    9   23    3   13    6
##        EDO   70   66   68   54  287  100   30  132  328   86  469   58
##        EPE    5    7    3   15    2   10    2    2    4    4   15    1
##        FAD    0    0    3    3    1    2    2    1    0   31   47   40
##        FE     5    3    0    4    6    0    7    1    2    0    3    1
##        FE2    7    2    1    1    2    0    9    1    1    0    3    1
##        FMN    0    1    2    1    2    0    1    0    0    5   14   18
##        FMT    3    2    1    1   10    1    0    2    9    3    9    1
##        GDP    1    0    1    0    1    0    1    0    0    6   12    5
##        GOL   74   79  149   88  524  177   56  269  417  112  886   71
##        HEC    0    0    0    1    1    0    0    1    1    0    7    0
##        HEM    5    6   14    5   18    3    4    6    9   11   65   10
##        IOD  219   19    0    3   24    2    9    1   17    2    6    4
##        K     22   68    0    4   26    1    8    1   29    1   10    1
##        MAN    0    2   23    1   20    5    3    3    1    6   48    4
##        MES    4    5    2  112   15   10    8    5    5    8   19    2
##        MG    18   41   27   28  747   33   45   19  106    9  108   15
##        MLY    3    0    6   10   15  106    6   11    8    9   49    4
##        MN     7    4    2    3   18    3   75    3    7    2   21    1
##        MPD    3    0    3    2   10    8    3   18    2    3   17    1
##        NA    32   31    2    5   83    4    7   12  266    3   32    3
##        NAD    1    1    6    2    2    3    3    1    0  365   75   87
##        NAG    7   29  170   38  213  176   44   67   67  177 3283  122
##        NAP    0    0    0    2    2    1    1    2    2   45   40  221
##        NDP    0    0    1    0    2    0    1    1    0   11   18   45
##        NI     7    0    2    1    4    0   11    1    0    0    1    0
##        NO3    2    1    1    2    8    1    0    1    2    1    4    0
##        PEG    3    2    7    6    8    9    1    6   13    8   58    4
##        PG4    0    0    3    0    8    4    1    1    5    4   39    3
##        PGE    0    0    1    2    3    3    0    5    4    3   22    1
##        PLP    0    3    6   10    2    4    1    0    1   10    8    6
##        PO4   26   17    5   11   55    8   34    8   14    7   30    2
##        SAH    1    0    6    1    2    3    0    1    1   11   15    5
##        SEP    0    2    7    2   10    0    8    2    2    1   10    2
##        SF4    1    1    0    0    1    0    1    0    1    0    1    0
##        SO4  418  208   60  153  703  107  256  138  293   45  339   57
##        TRS    1    3    7    0   12    0    1    2    6    1   10    2
##        ZN   111   30    5   10   92   15  185   10   32    2   55    5
##           Reference
## Prediction  NDP   NI  NO3  PEG  PG4  PGE  PLP  PO4  SAH  SEP  SF4  SO4
##        1PE    0    0    2   19   22    9    0    7    2    2    0   20
##        ACT    5    3   25   22    9    5    0   38    1    3    0  204
##        ACY    0    0    1    3    0    1    0    2    0    1    1   20
##        ADP   10    1    0    3    1    1    5    6   20    4    0   14
##        ATP    4    0    0    1    0    0    3    8   17    5    4    4
##        BR     0    1    0    2    0    0    0    1    0    0    0   19
##        CA     5   45    6   11   10    7    8   87    4   16    3  563
##        CD     0   19    0    0    0    0    1    8    0    0    1   32
##        CL    11   10   16   33   14   13    1   93    5    5   12  551
##        CLA    6    2    2   16    7    5    2   13    3    4    0   38
##        COA    7    1    0    3    2    0    1    3    1    2    0   23
##        CU     0    2    2    0    0    0    0    2    0    0    1    4
##        DMS    4    5   16    8    6    3    0   44    0    3    0  305
##        EDO   36   12   52  293  136  108    7  153   19   16    0  754
##        EPE    0    1    0    5    1    2    2    1    3    2    0   31
##        FAD   28    0    0    4    2    3    1    3    6    1    0    9
##        FE     1    2    0    1    0    0    1    8    0    0    0   11
##        FE2    0    2    0    1    0    0    1    4    0    0    0   16
##        FMN   12    1    0    1    0    1    0    3    4    2    0    8
##        FMT    2    1    0    7    2    2    1    5    2    1    0   28
##        GDP    5    0    0    1    0    0    3    1    8    1    1    4
##        GOL   36    9   54  395  192  134   34  234   34   35    3 1123
##        HEC    1    0    0    2    0    0    1    0    0    1    0    7
##        HEM    5    2    3   11    7    3    6   30    5    2    4   78
##        IOD    0   11    3    2    3    2    1   17    0    0    1  122
##        K      1    4    3    2    1    0    0   13    1    1    2   53
##        MAN    2    0    1    4    4    3    0    4    1    2    1   22
##        MES    2    1    0    1    5    3    8   15    1    4    0   41
##        MG     2   11   10   23   11   11    5   83    3    9    3  406
##        MLY    6    0    1    7    8    2    5    5    4    5    0   46
##        MN     1   23    0    1    0    1    0   24    0    4    1   61
##        MPD    3    1    1    8    3    3    2    6    0    2    1   40
##        NA     1    2    6   19    5    6    2   12    1    2    1   95
##        NAD   37    2    1   10    3    2    1    5   13    1    0   13
##        NAG   85   14    9  131  124   74   42  114   64   79    1  408
##        NAP   93    0    1    2    1    2    2    4    2    0    0    8
##        NDP   54    0    1    2    0    1    4    3    0    1    0    8
##        NI     1    9    0    0    0    0    0    5    0    0    1   12
##        NO3    0    0   20    0    3    1    0    1    0    0    0   17
##        PEG    5    0    3   36   22    8    0    4    2    1    0   49
##        PG4    0    1    1   13   25    9    0    4    1    0    0   12
##        PGE    0    0    2   16    6   10    0    5    1    0    0   10
##        PLP    4    0    0    0    1    0  190    3    5    2    2   10
##        PO4    1   10   12    7    1    3   13  173    1   11    3  481
##        SAH    1    0    0    1    0    0    1    1  144    1    0    3
##        SEP    1    1    1    1    2    1    1   18    6   68    0   12
##        SF4    0    2    0    1    0    0    0    3    0    0  357    1
##        SO4   39  102  138  102   46   32   38 1429   10   50    3 8094
##        TRS    0    0    0    1    0    0    0    4    0    0    0    8
##        ZN     6   95    4    2    0    2    3   56    1   20    4  211
##           Reference
## Prediction  TRS   ZN
##        1PE    0    5
##        ACT    5   43
##        ACY    2    4
##        ADP    0   10
##        ATP    0    4
##        BR     0    8
##        CA     8  428
##        CD     2   71
##        CL    13  142
##        CLA    2   13
##        COA    1    5
##        CU     0   76
##        DMS    3   28
##        EDO   35   73
##        EPE    1    9
##        FAD    1    3
##        FE     2   21
##        FE2    0   25
##        FMN    0    1
##        FMT    0    9
##        GDP    0    3
##        GOL  120  187
##        HEC    2    4
##        HEM    5   22
##        IOD    0   47
##        K      2   23
##        MAN    4    7
##        MES    3    6
##        MG    50  123
##        MLY    3   13
##        MN     2   93
##        MPD    2    5
##        NA     3   22
##        NAD    1    7
##        NAG   28  160
##        NAP    0    2
##        NDP    1    0
##        NI     0   26
##        NO3    0    3
##        PEG    2    8
##        PG4    1    3
##        PGE    0    3
##        PLP    0    9
##        PO4    6   83
##        SAH    1    0
##        SEP    0   22
##        SF4    1    5
##        SO4   46  582
##        TRS   39    3
##        ZN    13 2490
## 
## Overall Statistics
##                                           
##                Accuracy : 0.3441          
##                  95% CI : (0.3411, 0.3472)
##     No Information Rate : 0.1494          
##     P-Value [Acc > NIR] : < 2.2e-16       
##                                           
##                   Kappa : 0.2894          
##  Mcnemar's Test P-Value : NA              
## 
## Statistics by Class:
## 
##                      Class: 1PE Class: ACT Class: ACY Class: ADP
## Sensitivity           0.0415879   0.065012  1.247e-02   0.364979
## Specificity           0.9971040   0.986596  9.984e-01   0.993968
## Pos Pred Value        0.0748299   0.095620  3.125e-02   0.380220
## Neg Pred Value        0.9946154   0.979760  9.958e-01   0.993564
## Prevalence            0.0056008   0.021334  4.246e-03   0.010037
## Detection Rate        0.0002329   0.001387  5.294e-05   0.003663
## Detection Prevalence  0.0031127   0.014505  1.694e-03   0.009635
## Balanced Accuracy     0.5193459   0.525804  5.054e-01   0.679474
##                      Class: ATP Class: BR Class: CA Class: CD Class: CL
## Sensitivity            0.236842 0.0225989   0.36665  0.241038   0.43200
## Specificity            0.997028 0.9980089   0.96377  0.996754   0.95202
## Pos Pred Value         0.326087 0.0603015   0.37291  0.390782   0.37043
## Neg Pred Value         0.995374 0.9944935   0.96282  0.993465   0.96247
## Prevalence             0.006035 0.0056220   0.05550  0.008565   0.06134
## Detection Rate         0.001429 0.0001271   0.02035  0.002065   0.02650
## Detection Prevalence   0.004383 0.0021069   0.05457  0.005283   0.07154
## Balanced Accuracy      0.616935 0.5103039   0.66521  0.618896   0.69201
##                      Class: CLA Class: COA Class: CU Class: DMS Class: EDO
## Sensitivity            0.134766  0.0665434  0.086882   0.068237    0.38170
## Specificity            0.993385  0.9976041  0.998242   0.989256    0.90973
## Pos Pred Value         0.182540  0.1379310  0.236111   0.101802    0.27187
## Neg Pred Value         0.990544  0.9946385  0.994312   0.983469    0.94339
## Prevalence             0.010842  0.0057278  0.006215   0.017533    0.08113
## Detection Rate         0.001461  0.0003812  0.000540   0.001196    0.03097
## Detection Prevalence   0.008004  0.0027633  0.002287   0.011752    0.11391
## Balanced Accuracy      0.564075  0.5320738  0.542562   0.528746    0.64572
##                      Class: EPE Class: FAD Class: FE Class: FE2 Class: FMN
## Sensitivity           0.1333333   0.555947 0.0450000  0.0257069   0.463320
## Specificity           0.9979036   0.996839 0.9986071  0.9987455   0.998520
## Pos Pred Value        0.2452107   0.681425 0.1208054  0.0781250   0.633245
## Neg Pred Value        0.9955834   0.994611 0.9959492  0.9959819   0.997045
## Prevalence            0.0050820   0.012017 0.0042350  0.0041185   0.005484
## Detection Rate        0.0006776   0.006681 0.0001906  0.0001059   0.002541
## Detection Prevalence  0.0027633   0.009804 0.0015775  0.0013552   0.004013
## Balanced Accuracy     0.5656185   0.776393 0.5218036  0.5122262   0.730920
##                      Class: FMT Class: GDP Class: GOL Class: HEC
## Sensitivity           0.0509642  0.2045455     0.3990  0.1656184
## Specificity           0.9968952  0.9980756     0.8790  0.9986060
## Pos Pred Value        0.1128049  0.3091603     0.2827  0.3761905
## Neg Pred Value        0.9926798  0.9966557     0.9244  0.9957768
## Prevalence            0.0076865  0.0041927     0.1068  0.0050502
## Detection Rate        0.0003917  0.0008576     0.0426  0.0008364
## Detection Prevalence  0.0034727  0.0027739     0.1507  0.0022234
## Balanced Accuracy     0.5239297  0.6013105     0.6390  0.5821122
##                      Class: HEM Class: IOD Class: K Class: MAN Class: MES
## Sensitivity             0.56578   0.138783 0.058020  0.0343284   0.167414
## Specificity             0.99012   0.993313 0.994779  0.9973236   0.996662
## Pos Pred Value          0.63468   0.260714 0.122523  0.0839416   0.263529
## Neg Pred Value          0.98687   0.985482 0.988242  0.9931300   0.994076
## Prevalence              0.02945   0.016707 0.012409  0.0070936   0.007083
## Detection Rate          0.01666   0.002319 0.000720  0.0002435   0.001186
## Detection Prevalence    0.02626   0.008894 0.005876  0.0029010   0.004500
## Balanced Accuracy       0.77795   0.566048 0.526400  0.5158260   0.582038
##                      Class: MG Class: MLY Class: MN Class: MPD Class: NA
## Sensitivity           0.204658   0.122261 0.0713606  0.0225282  0.111204
## Specificity           0.976355   0.995758 0.9950214  0.9972772  0.987008
## Pos Pred Value        0.258120   0.210736 0.1388889  0.0659341  0.181943
## Neg Pred Value        0.968293   0.991900 0.9896072  0.9917072  0.977137
## Prevalence            0.038644   0.009179 0.0111275  0.0084594  0.025325
## Detection Rate        0.007909   0.001122 0.0007941  0.0001906  0.002816
## Detection Prevalence  0.030640   0.005326 0.0057173  0.0028904  0.015479
## Balanced Accuracy     0.590506   0.559009 0.5331910  0.5099027  0.549106
##                      Class: NAD Class: NAG Class: NAP Class: NDP Class: NI
## Sensitivity            0.326184    0.51305   0.253440  0.1032505 2.206e-02
## Specificity            0.994857    0.94396   0.996442  0.9982327 9.989e-01
## Pos Pred Value         0.431953    0.39954   0.398917  0.2454545 7.759e-02
## Neg Pred Value         0.991945    0.96387   0.993067  0.9950229 9.958e-01
## Prevalence             0.011847    0.06775   0.009232  0.0055373 4.320e-03
## Detection Rate         0.003864    0.03476   0.002340  0.0005717 9.529e-05
## Detection Prevalence   0.008946    0.08700   0.005865  0.0023293 1.228e-03
## Balanced Accuracy      0.660521    0.72851   0.624941  0.5507416 5.105e-01
##                      Class: NO3 Class: PEG Class: PG4 Class: PGE
## Sensitivity           0.0503778  0.0291734  0.0364964  0.0211416
## Specificity           0.9989474  0.9939174  0.9970672  0.9981804
## Pos Pred Value        0.1680672  0.0597015  0.0833333  0.0552486
## Neg Pred Value        0.9960035  0.9872347  0.9929900  0.9950886
## Prevalence            0.0042032  0.0130650  0.0072524  0.0050079
## Detection Rate        0.0002118  0.0003812  0.0002647  0.0001059
## Detection Prevalence  0.0012599  0.0063843  0.0031763  0.0019163
## Balanced Accuracy     0.5246626  0.5115454  0.5167818  0.5096610
##                      Class: PLP Class: PO4 Class: SAH Class: SEP
## Sensitivity            0.479798   0.062568   0.364557   0.184282
## Specificity            0.998565   0.985952   0.998352   0.998236
## Pos Pred Value         0.584615   0.118412   0.481605   0.290598
## Neg Pred Value         0.997811   0.972126   0.997334   0.996805
## Prevalence             0.004193   0.029274   0.004182   0.003907
## Detection Rate         0.002012   0.001832   0.001525   0.000720
## Detection Prevalence   0.003441   0.015468   0.003166   0.002477
## Balanced Accuracy      0.739181   0.524260   0.681455   0.591259
##                      Class: SF4 Class: SO4 Class: TRS Class: ZN
## Sensitivity            0.868613     0.5737  0.0951220   0.50415
## Specificity            0.999543     0.8559  0.9988728   0.97445
## Pos Pred Value         0.892500     0.4114  0.2689655   0.52125
## Neg Pred Value         0.999426     0.9196  0.9960660   0.97269
## Prevalence             0.004351     0.1494  0.0043409   0.05229
## Detection Rate         0.003780     0.0857  0.0004129   0.02636
## Detection Prevalence   0.004235     0.2083  0.0015352   0.05058
## Balanced Accuracy      0.934078     0.7148  0.5469974   0.73930